trade_refund (申请退款)
该接口提供全额退款部分退款功能。
部分退款时退款单号(退款标识)生成方法是自增模式,前缀可以在Pament.php文件里设置REFUND_PREFIX
//加载相应的Library
$type = 'weixin';
if($type == 'weixin'){
$this->load->library('WxPay');
$payment = $this->wxpay;
}else if($type == 'alipay'){
$this->load->library('AliPay');
$payment = $this->alipay;
}
// 设置订单号
$trade_no = '2017101621001004340289220052';
$payment->set_trade_no($trade_no);
// $order_no = 'jtorder001'; //使用商家订单号查询
// $payment->set_trade_no(null,$order_no);
$total_amount = '1.00';
$reason = '拼团失败退款';
//全额退款
$result = $payment->trade_refund($total_amount, $reason);
//部分退款
$amount = '0.02';
$result2 = $payment->trade_refund($total_amount, $reason, $amount);
//指定退款标识、部分退款(不是特殊情况不建议这么使用)
$amount = '0.03';
$result2 = $payment->trade_refund($total_amount, $reason, $amount, 'TK005');
// *****************************************************
// *** 当前项目当中以上代码简化成这样使用,根据订单号自动加载 ***
// *****************************************************
$this->load->helper('payment');
$payment = load_payment_by_order_no($order_id);
//全额退款
$result = $payment->trade_refund($total_amount, $reason);
请求参数
字段名 |
参数 |
类型 |
是否必填 |
描述 |
示例值 |
总金额 |
$total_amount |
DECIMAL(10,2) |
必填 |
该订单的总金额 (单位:元) |
10.50 |
退款原因 |
$reason |
String(255) |
是 |
- |
- |
退款金额 |
$refund_amount |
DECIMAL(10,2) |
否 |
默认为0 可以省略,0 的时候是全额退款 |
10.50 |
退款标识 |
$out_refund_no |
String(32) |
否 |
默认为null , 建议省略退款标识。使用场景是之前有申请退款的没有成功,一定要用同样退款标识退款的情况下使用这个参数 |
TK003 |
其他可选参数 |
$param |
Array |
否 |
其他可选参数 |
jtorder910 |
响应参数
字段名 |
参数 |
类型 |
是否必填 |
描述 |
执行结果状态 |
result_status |
Bool |
必填 |
真(REFUND_SUCCESS 退款申请接收成功,结果通过退款查询接口查询),否则为假 |
状态码 |
result_code |
String(32) |
必填 |
执行结果状态码(详见底部状态码) |
状态描述 |
status_msg |
String(255) |
必填 |
执行结果状态描述 |
交易ID |
trade_no |
String(64) |
必填(成功时) |
支付平台的交易号 |
详细描述 |
status_sub_msg |
String(255) |
否 |
执行状态详细描述 |
订单总金额 |
total_amount |
DECIMAL(10,2) |
必填(成功时) |
订单总金额 |
已退款总金额 |
refund_amount |
String(128) |
必填(成功时) |
订单已退款的总金额 |
退款金额 |
refund_fee |
String(128) |
必填(成功时) |
本次交易退款金额 |
已退款单数 |
refund_count |
String(128) |
否 |
- |
原数据 |
request_data |
Array |
否 |
支付平台回调的信息 |
执行结果状态码
状态码 |
描述 |
REFUND_SUCCESS |
退款成功 |
REFUND_FAIL |
退款失败 |
NOTENOUGH |
余额不足 |
NOTFOUND |
交易不存在 |
ERROR |
发生错误 |